{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Hierarchical Clustering",
      "version": "0.3.2",
      "provenance": [],
      "collapsed_sections": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "metadata": {
        "id": "7lEU2B93ivBz",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# Hierarchical Clustering\n",
        "In this notebook we will give a basic example of how agglomerative hierarchical cluster works. \n",
        "We use scipy and sklearn libraries. "
      ]
    },
    {
      "metadata": {
        "id": "beCEkyHzwL-5",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        "from sklearn.metrics import normalized_mutual_info_score\n",
        "import matplotlib.pyplot as plt\n",
        "from scipy.cluster.hierarchy import dendrogram, linkage, fcluster\n",
        "from sklearn.datasets.samples_generator import make_blobs\n",
        "import numpy as np "
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "metadata": {
        "id": "elEYgSyIjP8c",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# Generating Sample data\n",
        " `make_blobs` is used to generate sample data where:\n",
        " \n",
        "\n",
        "`n_samples`        :  the total number of points equally divided among clusters.\n",
        "\n",
        "`centers`           :  the number of centers to generate, or the fixed center locations.\n",
        "\n",
        "`n_features`     : the number of features for each sample. \n",
        "\n",
        "`random_state`: determines random number generation for dataset creation.\n",
        "\n",
        "\n",
        "\n",
        "This function returns two outputs: \n",
        "\n",
        "`X`:   the generated samples. \n",
        "\n",
        "`y`:   The integer labels for cluster membership of each sample. \n",
        "\n",
        "Then we use `plt.scatter` to plot the data points in the figure below.\n",
        "\n"
      ]
    },
    {
      "metadata": {
        "id": "Nxjz1FiSEl9Q",
        "colab_type": "code",
        "outputId": "3f6f6713-ab54-4250-df8a-68b7922d5313",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 347
        }
      },
      "cell_type": "code",
      "source": [
        "X, y = make_blobs(n_samples=90, centers=4, n_features=3, random_state=4)\n",
        "plt.scatter(X[:, 0], X[:, 1])\n",
        "plt.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\ndIJJm4iISCeYtImIiHSCSZuIiEgnmLSJiIh0gkmbiIhIJ5i0iYiIdIJJm4iISCeYtImIiHSCSZuI\niEgnmLSJiIh0gkmbiIhIJ5i0iYiIdIJJm4iISCeYtImIiHSCSZuIiEgnmLSJiIh0gkmbiIhIJ5i0\niYiIdCJJ1I22b9+Ot956C/369QMAjBs3DosWLfJ5z86dO/HBBx8gMTERc+fORX5+vqjHExERSU9Y\n0gaA6dOnY9myZX6vNTU1Yc2aNdi2bRuSk5MxZ84cTJ06Fd27dxfZBCIiImnFbXj8+PHjGD58ONLT\n02E2mzFy5EgcO3YsXo8nIiLSPaFJ+8iRI1i4cCEeffRR/Pd//7fPtaqqKlgsFu/XFosFNptN5OOJ\niIikFtHweElJCUpKSnxe+8lPfoIlS5Zg8uTJKCsrw7Jly/DZZ58FvIfH4wnpWVlZqUhKMkTSTM2z\nWtPVbkJMyBoXIG9sssYFyBubrHEB8sYmIq6IknZ+fr7iIrLc3FzU1NTA7XbDYLiRcHNyclBVVeV9\nT2VlJe65556gz7LbmyJpouZZremw2RrUboZwssYFyBubrHEB8sYma1yAvLGFE5dSchc2PL5+/Xp8\n/vnnAIDy8nJYLBZvwgaAu+++G9988w3q6+tx/fp1HDt2DKNGjRL1eCIiIukJWz0+Y8YM/OY3v8HW\nrVvhcrmwcuVKAMCf/vQnjB49Grm5uVi6dCkWLlyIhIQEPP3000hPl3MIhIiIKBYSPKFOLqtExmES\ngENAeiRrbLLGBcgbm6xxAfLGprnhcSIiIootJm0iIiKdYNImIiLSCSZtIiIinWDSJiIi0gkmbSIi\nIp1g0iYiItIJJm0iIiKdYNImIiLSCSZtIiIinWDSJiIi0gkmbSIiIp1g0iYiItIJJm0iIiKdYNIm\nIiLSCSZtIiIinWDSJiIi0gkmbSIiIp1g0iYiItIJJm0iIiKdYNImIiLSCSZtIiIinWDSJiIi0gkm\nbSIiIp1g0iYiItIJJm0iIiKdSBJ1o7Vr1+LgwYMAgLa2NlRVVWHXrl3e6xcvXsSMGTMwbNgwAEBW\nVhbefvttUY8nIiKSnrCkvWjRIixatAgA8Oc//xnV1dWd3tO/f39s2rRJ1COJiIi6FOHD4y6XC1u2\nbEFRUZHoWxMREXVpwpP27t278cADD8BsNne6VlVVhV/+8pcoLCzEzp07RT+aiIhIagkej8cT7jeV\nlJSgpKTE57UlS5ZgwoQJWLhwIX73u9+hb9++PtcbGxuxa9cuzJw5Ew0NDcjPz8eWLVuQk5Oj+CyX\ny42kJEO4TSQi6hJanC7Y6x3IyjDBbBQ240kaFVHSDqSpqQn5+fn4z//8z6DvfeaZZzBv3jyMGTNG\n8X02W4Oo5mmK1ZouZWyyxgVphYdYAAARk0lEQVTIG5uscQHyxma1puPqtToU7z2LsnIbauodsGSY\nkDvEioIpg2BI1O/GIJl/ZqHGZbWmB7wm9Cd7+vRpDBgwwO+1w4cP4/e//z2AG8n99OnT6N+/v8jH\nExF1GcV7z2LP0YuornfAA6C63oE9Ry+ieO9ZtZsWEUerG5X2JrQ4XWo3RdOEjqXYbDZYLBaf11au\nXIlHHnkEo0aNwo4dO1BQUAC3240nnngCPXv2FPl4IqIuocXpQlm5ze+1svIqzJ40EKZkfUwrutva\nfEYMrFkpGDEwW/cjBrEiNGlPmzYN06ZN83nthRde8P73a6+9JvJxRERdkr3egZp6h/9rDS2oa3Qg\nJys1zq2KTPuIQbtKe7P36/l5Q9RqlmbxYwwRkc5kZZhgyTD5v5ZuRmaa/2ta42h1K44YOFrdcW6R\n9jFpExHpjNmYhNwhVr/Xcof00M3QeF1j8BED8sX9AUREOlQwZRCAGz1Se0MLstLNyB3Sw/u6HmSm\n3RgxqPaTuCMZMXC0ulHX6EBmmkk3H1zCxaRNRKRDhsREzM8bgtmTBuo2UZmSDcgdYvWZ024XzohB\nx8Vssmx/84dJm4hIx0zJBt0sOvOn44hBj+43V4+HquNitvbtb4B8i9mYtImISDUdRwwG3pGNhrrm\nkL8/2GI2PW1/C4Vc4wZERKRL7SMG4ZZi7WqL2Zi0iYhIt9oXs/mjp+1voWLSJiIi3WpfzOaPnra/\nhYpz2kREpGsybH8LFZM2EREFFMu9z6LuLcP2t1AxaRMRUSex3PusdO9o6H37WyiYtImIqJNY7n1W\nuvcz8+6N6t6y40I0IiLyEcuDPILdm+dpK2PSJiIiH3WNDr/1wIHo9z4H21dtD3CNbmDSJiIiL3db\nG3Z9XYHEBP/Xg+19drS6UWlvCtgbD7avOivANbqBc9pERORVvPcsSo9dCng90N7nUBeuBTskxGxM\nQoOYUKTEpE1ERACU55sTE4BJ9/QJuMJ7854zPsleaeFaV9pXLRqTNhERAVCeb/YAmHZfv07bvdxt\nbdj8t3J8+c/Lfr/P36EdXWlftWic0yYiIgDK882WAHPZxXvPorTsMto8/u+ptHCtfV81E3bomLSJ\niAhA+HW8lYbT28l4aIeaODxORCQJEWVBw5lvVhpObyfjoR1qYtImItI5kSVHw5lvbh9O97enOzEB\nmJT7PS4uE4zD40REOtdeFrS63gEPbq7cLt57NuJ73jrfHGjvdZIhAanmZL/fP+mePljwozujrlMe\na8H2lWsNe9pERDrT4nSh0t7knStWKgvaceV2OJR68C63Bx/u+hYVlY2dvu+2nDTMnxpdffJYi+WB\nKLHEpE1EpBPtiebEuWrY7M2wZJhwZ78sxbKgdY2OiE++CnSwx7cXanG92YmaBqff72tqccHl9sCg\n3dwX0wNRYknD/6RERHSr9kRTaW/2DoMfPHkVJqP/nnQ0K7eVVoZXVDYGTNhA9PXJYy2WB6LEWsRJ\n+8iRIxg7dixKS0u9r50+fRqFhYUoLCzEihUrOn1Pa2srli5dinnz5qGoqAgVFRWRPp6IqEsJZXtV\nR9Gs3A5lZXggWt/mFezQEi1/4IgoaV+4cAHvvfceRo4c6fP6ypUrsXz5cmzduhWNjY348ssvfa5/\n/vnnyMjIwJYtW/Dkk0/iP/7jPyJvORFRF6KUaBxON8YP64XsDDMSE4DsDDPyRvWNauW2UqGVYLS+\nzSvYoSXhfOCI90K2iOa0rVYrVq9ejRdeeMH7mtPpxKVLlzBixAgAwA9+8AMcOnQIkyZN8r7n0KFD\nmDVrFgBg3LhxWL58eTRtJyLqMpS2V1kyzCiadicACCsLqnSwRyDZtyzm0rJgh5aE8m+n1kK2iJJ2\nSkpKp9fsdjsyMjK8X2dnZ8Nm8x3KqaqqgsViAQAkJiYiISEBTqcTRqMx4LOyslKRlKTdT2zRsFrT\n1W5CTMgaFyBvbLLGBcgV2/i7v4ed+8/7eb0P+vbpDgDoK+A5LU4X7PUO/HzWcKSmGHH45BVU1Taj\nR/cUpKUk4/zl+k7f88NRt+HJ2SNgNka/vjkeP7PFc3M7xTZsYA/8n1nD0C0lcE5qt37HN34XsqWm\nGPHzWcP9fo+IuIL+65aUlKCkpMTntSVLlmDChAmK3+fxBChEG+Z77PamoO/RI6s1HTabfAfQyRoX\nIG9sssYFyBfbjLH90NTsxIlz1aiqbfZWK5sxtp+QOAP1Hn/72Gg0NjmRmWZCkiHhX+/pWDFtIBrq\nmqM+VjPUn5mI6m+zxt+BH436Hjb/7QxOf1eD0qMVOF5eGbTH7Gh148Bx/8eXHjh+GQ/ed1unNoXz\nu6iU3IMm7fz8fOTn5wd9iMViQW1trffra9euIScnx+c9OTk5sNlsuOuuu9Da2gqPx6PYyyYiopva\nq5X9YnYKzv2/auGnY4W6DUrNE7pED0vv2P+/OHjyqvfrULZ+hbKQLdJtdsEIG3hPTk7GgAEDcPTo\nUQDA7t27O/XGx48fj7/+9a8AgNLSUtx///2iHk9E1GWYjUnCT8cKZxuUiF5upERWf4t065fIhWzh\nimjyYd++fdiwYQPOnz+PU6dOYdOmTdi4cSOWL1+O3/72t2hra8Pdd9+NcePGAQAWLVqEtWvXYvr0\n6Th48CDmzZsHo9GI1157TWgwREQUmVB6j9mZZlWriAVLsuFWf4u0xyxiIVukIkrakydPxuTJkzu9\nPmjQIGzevLnT62vXrgUAGAwG/P73v4/kkUREFENKq9Pbe49qVxETPSwdSsyBhHMamkgsY0pEREF7\nj0DsapyHKpok6080PeZwTkMTiWVMiYgIwI3eY96ovn6LtGihilh7kvUn0mFppZhDbZPo9QVK2NMm\nIiIAyr1H0b3cSIkellarxxwpJm0iIvLR3nvs+FqwoeR4rCqPVZL1F7MWMWkTEVFIAvVy50wegM17\nyuO6qlwvSVY0Jm0iIgpJoF7u5j3lujybWo+4EI2IiMJy6+IrPZ9NrUdM2kREFDEtrCrvSpi0iYgo\nYmqW9OyKmLSJiChisdg7HQpHqxuV9qYuN/zOhWhERBSVeJb0FH3Kl94waRMRUVTiWaBE7frnapP/\nYwkREcVFrEt6cqU6kzYREekEV6ozaRMRkU5wpTqTNhER6YRaK9W1hAvRiIhIN6JdqR6PQ01iiUmb\niIh0I9KV6rJsFWPSJiIi3Qn3lC9Ztorp5+MFERFRBGTaKsakTUREUpNpqxiTNhERSU2mrWJM2kRE\nJDWZtopxIRoREUkvnoeaxBKTNhERSS+eh5rEEpM2ERF1GeFuFdOaiOe0jxw5grFjx6K0tNT72unT\npzF//nwUFRXhqaeeQnNzs8/3bN++HZMmTcKCBQuwYMECrF27NvKWExERdTER9bQvXLiA9957DyNH\njvR5/ZVXXsFzzz2HESNG4PXXX8f27dvxb//2bz7vmT59OpYtWxZ5i4mIiLqoiHraVqsVq1evRnp6\nus/r69atw4gRIwAAFosFtbW10beQiIiIAETY005JSfH7elpaGgCgqakJn376Kd56661O7zly5AgW\nLlwIl8uFZcuW4fvf/77is7KyUpGUpL/FAqGwWtODv0mHZI0LkDc2WeMC5I1N1rgAeWMTEVfQpF1S\nUoKSkhKf15YsWYIJEyb4fX9TUxMWLVqExx9/HAMHDvS5dvfdd8NisWDy5MkoKyvDsmXL8Nlnnyk+\n325vCtZEXbJa02GzNajdDOFkjQuQNzZZ4wLkjU3WuAB5YwsnLqXkHjRp5+fnIz8/P6QHuVwuPPXU\nU3jooYfw05/+tNP1gQMHehN5bm4uampq4Ha7YTDI2ZMmIiISSWhFtPXr1+O+++4LmOTXr1+Pzz//\nHABQXl4Oi8XChE1ERBSiiOa09+3bhw0bNuD8+fM4deoUNm3ahI0bN+Kjjz5C3759cejQIQDA/fff\nj8WLF2PRokVYu3YtZsyYgd/85jfYunUrXC4XVq5cKTQYIiIimSV4PB6P2o0gIiKi4HhgCBERkU4w\naRMREekEkzYREZFOMGkTERHpBJM2ERGRTjBpExER6YQuknZVVRVGjx6Nr776Su2mCNNee33evHmY\nO3cujh49qnaTovbqq6+ioKAAhYWFOHHihNrNEWrVqlUoKCjA7NmzsXv3brWbI1RLSwvy8vKwfft2\ntZsi1M6dOzFz5kz89Kc/xb59+9RujhDXr1/H4sWLsWDBAhQWFmL//v1qNylq5eXlyMvLw4cffggA\nuHLlChYsWID58+fjmWeegdPpVLmFkfEX12OPPYaioiI89thjsNlsEd1XF0l71apVuO2229RuhlCf\nfvopUlJSsGXLFqxcuRKvvfaa2k2KypEjR/Ddd9+huLgYK1eulKpwzuHDh3HmzBkUFxfj3Xffxauv\nvqp2k4Rau3YtMjMz1W6GUHa7HWvWrMHmzZuxbt06fPHFF2o3SYg///nP6N+/PzZt2oS33npL9/+f\nNTU14eWXX8bYsWO9r7399tuYP38+Nm/ejNtvvx3btm1TsYWR8RfXm2++iblz5+LDDz/E1KlT8d57\n70V0b80n7UOHDqFbt24YMmSI2k0RaubMmXj++ecByHGM6aFDh5CXlwfgRo35uro6NDY2qtwqMUaP\nHu09sS4jIwPNzc1wu90qt0qMc+fO4ezZs5g8ebLaTRHq0KFDGDt2LNLS0pCTk4OXX35Z7SYJkZWV\n5f1bUV9fj6ysLJVbFB2j0Yj169cjJyfH+9pXX32FH/7whwCAH/zgB94Km3riL64VK1Zg2rRpAHx/\njuHSdNJ2Op1Ys2YN/v3f/13tpgiXnJwMk8kEAPjggw/w0EMPqdyi6FRVVfn8AbFYLBEP/2iNwWBA\namoqAGDbtm2YOHGiNDXzX3/9dTz33HNqN0O4ixcvoqWlBU8++STmz5+vyz/8/vzkJz/B5cuXMXXq\nVBQVFWHZsmVqNykqSUlJMJvNPq81NzfDaDQCALKzs3X5d8RfXKmpqTAYDHC73di8eTNmzJgR2b1F\nNFAEf0eATpw4Efn5+cjIyFCpVWIoHW/60Ucf4dSpU1i3bp1KrYsNGavj7tmzB9u2bcPGjRvVbooQ\nO3bswD333CPd1FO72tparF69GpcvX8YjjzyC0tJSJCQkqN2sqHz66afo06cPNmzYgNOnT2P58uXS\nrUW4lWx/R9xuN5599lmMGTPGZ+g8HJpJ2v6OAC0sLERbWxs++ugjXLhwASdOnMBbb72FwYMHq9TK\nyAQ63rSkpAR79+7FH//4RyQnJ6vQMnFycnJQVVXl/bqyshJWq1XFFom1f/9+rFu3Du+++y7S06M/\nyF4L9u3bh4qKCuzbtw9Xr16F0WhEr169MG7cOLWbFrXs7Gzk5uYiKSkJ/fr1Q7du3VBTU4Ps7Gy1\nmxaVY8eO4YEHHgAA3HXXXaisrJTueOPU1FS0tLTAbDbj2rVrPkPMevf888/j9ttvx+LFiyO+h6aH\nx7du3YqPP/4YH3/8MSZPnowVK1boLmEHUlFRga1bt2L16tXeYXI9Gz9+PHbt2gUAOHXqFHJycpCW\nlqZyq8RoaGjAqlWr8M4776B79+5qN0eYN998E5988gk+/vhj5Ofn46mnnpIiYQPAAw88gMOHD6Ot\nrQ12ux1NTU26n/8FgNtvvx3Hjx8HAFy6dAndunWTKmEDwLhx47x/S3bv3o0JEyao3CIxdu7cieTk\nZPzyl7+M6j6a6Wl3NSUlJaitrcUTTzzhfW3Dhg3euRy9GTlyJIYOHYrCwkIkJCRgxYoVajdJmL/8\n5S+w2+341a9+5X3t9ddfR58+fVRsFSnp2bMnpk2bhrlz5wIAXnzxRSQmarqPEpKCggIsX74cRUVF\ncLlceOmll9RuUlROnjyJ119/HZcuXUJSUhJ27dqFN954A8899xyKi4vRp08fzJo1S+1mhs1fXNXV\n1TCZTFiwYAGAGwt2I/n58WhOIiIindD/R08iIqIugkmbiIhIJ5i0iYiIdIJJm4iISCeYtImIiHSC\nSZuIiEgnmLSJiIh0gkmbiIhIJ/4/0hVflg12a20AAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 576x396 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "Gd2x3DM3qiLi",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# Performing Hierarchical clustering: \n",
        "In this part, we are performing agglomerative hierarchical clustering using linkage function from scipy library:: \n",
        "\n",
        "`method`: is the linkage method, 'single' means the linkage method will be single linkage method. \n",
        "\n",
        "`metric`: is our similarity metric, 'euclidean' means the metric will be euclidean distance. \n",
        "\n",
        "\"A  `(n-1)` by 4 matrix `Z` is returned. At the -th iteration, clusters with indices `Z[i, 0]` and `Z[i, 1]` are combined to form cluster with index `(n+i)` . A cluster with an index less than `n` corresponds to one of the `n` original observations. The distance between clusters `Z[i, 0]` and `Z[i, 1]` is given by `Z[i, 2]`. The fourth value `Z[i, 3]` represents the number of original observations in the newly formed cluster.\n",
        "\n",
        "The following linkage methods are used to compute the distance `d(s,t)`between two clusters `s`and `t`. The algorithm begins with a forest of clusters that have yet to be used in the hierarchy being formed. When two clusters `s` and `t`from this forest are combined into a single cluster `u`, `s`and `t` are removed from the forest, and `u` is added to the forest. When only one cluster remains in the forest, the algorithm stops, and this cluster becomes the root.\n",
        "\n",
        "A distance matrix is maintained at each iteration. The `d[i,j]`` entry corresponds to the distance between cluster `ii` and `j` in the original forest.\n",
        "\n",
        "At each iteration, the algorithm must update the distance matrix to reflect the distance of the newly formed cluster u with the remaining clusters in the forest.\"\n",
        "\n",
        "\n",
        "For more details check the docmentation of linkage: https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html\n"
      ]
    },
    {
      "metadata": {
        "id": "hrFUAgplFE8T",
        "colab_type": "code",
        "outputId": "fa9c51c8-3ef6-431b-dd36-15ba837f440a",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1547
        }
      },
      "cell_type": "code",
      "source": [
        "Z = linkage(X, method=\"single\", metric=\"euclidean\")\n",
        "print(Z.shape)\n",
        "Z"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(89, 4)\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([[1.90000000e+01, 8.60000000e+01, 1.30442991e-01, 2.00000000e+00],\n",
              "       [1.00000000e+00, 2.90000000e+01, 1.82464805e-01, 2.00000000e+00],\n",
              "       [2.60000000e+01, 4.10000000e+01, 2.24296317e-01, 2.00000000e+00],\n",
              "       [3.40000000e+01, 9.10000000e+01, 2.58407755e-01, 3.00000000e+00],\n",
              "       [1.70000000e+01, 8.80000000e+01, 4.46261329e-01, 2.00000000e+00],\n",
              "       [3.00000000e+00, 2.80000000e+01, 4.59526997e-01, 2.00000000e+00],\n",
              "       [8.00000000e+00, 9.30000000e+01, 4.70577188e-01, 4.00000000e+00],\n",
              "       [6.40000000e+01, 7.00000000e+01, 4.85796818e-01, 2.00000000e+00],\n",
              "       [6.80000000e+01, 9.70000000e+01, 5.52673653e-01, 3.00000000e+00],\n",
              "       [2.20000000e+01, 7.10000000e+01, 5.67637608e-01, 2.00000000e+00],\n",
              "       [4.80000000e+01, 5.20000000e+01, 5.72218127e-01, 2.00000000e+00],\n",
              "       [2.70000000e+01, 9.20000000e+01, 5.83346355e-01, 3.00000000e+00],\n",
              "       [7.70000000e+01, 9.00000000e+01, 5.88123667e-01, 3.00000000e+00],\n",
              "       [4.50000000e+01, 9.50000000e+01, 6.06112007e-01, 3.00000000e+00],\n",
              "       [4.90000000e+01, 9.80000000e+01, 6.06134706e-01, 4.00000000e+00],\n",
              "       [3.80000000e+01, 8.50000000e+01, 6.54175526e-01, 2.00000000e+00],\n",
              "       [2.00000000e+01, 1.05000000e+02, 6.64553292e-01, 3.00000000e+00],\n",
              "       [9.00000000e+00, 4.60000000e+01, 6.70931992e-01, 2.00000000e+00],\n",
              "       [9.90000000e+01, 1.02000000e+02, 6.82628319e-01, 5.00000000e+00],\n",
              "       [7.00000000e+00, 1.20000000e+01, 6.95405759e-01, 2.00000000e+00],\n",
              "       [2.10000000e+01, 1.00000000e+02, 7.00137901e-01, 3.00000000e+00],\n",
              "       [7.50000000e+01, 8.40000000e+01, 7.18486705e-01, 2.00000000e+00],\n",
              "       [6.70000000e+01, 1.01000000e+02, 7.20982261e-01, 4.00000000e+00],\n",
              "       [6.50000000e+01, 1.04000000e+02, 7.30097372e-01, 5.00000000e+00],\n",
              "       [2.30000000e+01, 3.60000000e+01, 7.30257122e-01, 2.00000000e+00],\n",
              "       [5.60000000e+01, 8.30000000e+01, 7.31435561e-01, 2.00000000e+00],\n",
              "       [6.90000000e+01, 1.15000000e+02, 7.39908983e-01, 3.00000000e+00],\n",
              "       [3.20000000e+01, 7.90000000e+01, 7.52488630e-01, 2.00000000e+00],\n",
              "       [4.20000000e+01, 7.40000000e+01, 7.72963318e-01, 2.00000000e+00],\n",
              "       [9.40000000e+01, 1.06000000e+02, 7.75139691e-01, 5.00000000e+00],\n",
              "       [1.30000000e+01, 5.70000000e+01, 8.09976391e-01, 2.00000000e+00],\n",
              "       [4.70000000e+01, 1.10000000e+02, 8.17317663e-01, 4.00000000e+00],\n",
              "       [8.70000000e+01, 1.21000000e+02, 8.37778371e-01, 5.00000000e+00],\n",
              "       [7.20000000e+01, 1.18000000e+02, 8.40307889e-01, 3.00000000e+00],\n",
              "       [1.09000000e+02, 1.13000000e+02, 8.40561182e-01, 7.00000000e+00],\n",
              "       [1.10000000e+01, 4.40000000e+01, 8.47017348e-01, 2.00000000e+00],\n",
              "       [5.40000000e+01, 1.16000000e+02, 8.53348573e-01, 4.00000000e+00],\n",
              "       [6.10000000e+01, 1.24000000e+02, 8.60237379e-01, 8.00000000e+00],\n",
              "       [8.10000000e+01, 1.14000000e+02, 8.69649593e-01, 3.00000000e+00],\n",
              "       [1.60000000e+01, 3.50000000e+01, 8.71267240e-01, 2.00000000e+00],\n",
              "       [8.90000000e+01, 1.23000000e+02, 8.87225579e-01, 4.00000000e+00],\n",
              "       [1.40000000e+01, 5.10000000e+01, 8.97306320e-01, 2.00000000e+00],\n",
              "       [1.27000000e+02, 1.31000000e+02, 9.03391600e-01, 1.00000000e+01],\n",
              "       [7.60000000e+01, 1.30000000e+02, 9.42132535e-01, 5.00000000e+00],\n",
              "       [2.00000000e+00, 4.00000000e+00, 9.43591329e-01, 2.00000000e+00],\n",
              "       [6.00000000e+01, 1.32000000e+02, 9.52055045e-01, 1.10000000e+01],\n",
              "       [1.50000000e+01, 1.03000000e+02, 9.55858009e-01, 4.00000000e+00],\n",
              "       [6.20000000e+01, 1.36000000e+02, 9.55990815e-01, 5.00000000e+00],\n",
              "       [7.80000000e+01, 1.12000000e+02, 9.62094518e-01, 5.00000000e+00],\n",
              "       [1.26000000e+02, 1.33000000e+02, 9.70616432e-01, 9.00000000e+00],\n",
              "       [3.10000000e+01, 1.37000000e+02, 9.73453020e-01, 6.00000000e+00],\n",
              "       [3.00000000e+01, 1.38000000e+02, 9.76974714e-01, 6.00000000e+00],\n",
              "       [1.17000000e+02, 1.34000000e+02, 9.87111827e-01, 4.00000000e+00],\n",
              "       [6.00000000e+00, 4.00000000e+01, 9.88659025e-01, 2.00000000e+00],\n",
              "       [6.30000000e+01, 1.41000000e+02, 9.90928355e-01, 7.00000000e+00],\n",
              "       [1.80000000e+01, 1.35000000e+02, 9.94563563e-01, 1.20000000e+01],\n",
              "       [4.30000000e+01, 1.44000000e+02, 1.01672289e+00, 8.00000000e+00],\n",
              "       [1.19000000e+02, 1.40000000e+02, 1.02423556e+00, 1.10000000e+01],\n",
              "       [5.30000000e+01, 1.47000000e+02, 1.02433354e+00, 1.20000000e+01],\n",
              "       [0.00000000e+00, 5.80000000e+01, 1.04742170e+00, 2.00000000e+00],\n",
              "       [9.60000000e+01, 1.48000000e+02, 1.05140979e+00, 1.60000000e+01],\n",
              "       [1.11000000e+02, 1.29000000e+02, 1.05383364e+00, 4.00000000e+00],\n",
              "       [1.49000000e+02, 1.50000000e+02, 1.06811164e+00, 1.80000000e+01],\n",
              "       [1.43000000e+02, 1.52000000e+02, 1.13528499e+00, 2.00000000e+01],\n",
              "       [1.42000000e+02, 1.45000000e+02, 1.13534989e+00, 1.60000000e+01],\n",
              "       [1.00000000e+01, 1.54000000e+02, 1.13899133e+00, 1.70000000e+01],\n",
              "       [8.00000000e+01, 1.55000000e+02, 1.14020634e+00, 1.80000000e+01],\n",
              "       [1.08000000e+02, 1.39000000e+02, 1.16825903e+00, 1.40000000e+01],\n",
              "       [1.28000000e+02, 1.57000000e+02, 1.17114497e+00, 1.70000000e+01],\n",
              "       [3.30000000e+01, 1.46000000e+02, 1.18258513e+00, 9.00000000e+00],\n",
              "       [8.20000000e+01, 1.53000000e+02, 1.20489168e+00, 2.10000000e+01],\n",
              "       [5.00000000e+01, 7.30000000e+01, 1.26106706e+00, 2.00000000e+00],\n",
              "       [1.25000000e+02, 1.56000000e+02, 1.26262400e+00, 2.00000000e+01],\n",
              "       [1.51000000e+02, 1.59000000e+02, 1.26658643e+00, 1.30000000e+01],\n",
              "       [1.07000000e+02, 1.62000000e+02, 1.27731453e+00, 2.20000000e+01],\n",
              "       [1.58000000e+02, 1.61000000e+02, 1.30683670e+00, 1.90000000e+01],\n",
              "       [5.50000000e+01, 1.65000000e+02, 1.31086896e+00, 2.00000000e+01],\n",
              "       [1.20000000e+02, 1.63000000e+02, 1.32666243e+00, 1.50000000e+01],\n",
              "       [2.40000000e+01, 1.66000000e+02, 1.34505705e+00, 2.10000000e+01],\n",
              "       [2.50000000e+01, 1.67000000e+02, 1.35109125e+00, 1.60000000e+01],\n",
              "       [5.90000000e+01, 1.68000000e+02, 1.43253745e+00, 2.20000000e+01],\n",
              "       [3.70000000e+01, 1.70000000e+02, 1.45594208e+00, 2.30000000e+01],\n",
              "       [1.22000000e+02, 1.69000000e+02, 1.47692245e+00, 2.10000000e+01],\n",
              "       [6.60000000e+01, 1.60000000e+02, 1.55016373e+00, 2.20000000e+01],\n",
              "       [3.90000000e+01, 1.72000000e+02, 1.57569084e+00, 2.20000000e+01],\n",
              "       [5.00000000e+00, 1.73000000e+02, 1.70993648e+00, 2.30000000e+01],\n",
              "       [1.64000000e+02, 1.75000000e+02, 3.30049427e+00, 4.50000000e+01],\n",
              "       [1.74000000e+02, 1.76000000e+02, 1.07623457e+01, 6.70000000e+01],\n",
              "       [1.71000000e+02, 1.77000000e+02, 1.31670775e+01, 9.00000000e+01]])"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 3
        }
      ]
    },
    {
      "metadata": {
        "id": "5KVO5Sb4wJNx",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# Plotting dendrogram \n",
        "The dedrogram function from scipy is used to plot dendrogram: \n",
        "\n",
        "\n",
        "\n",
        "*   On the `x` axis we see the indexes of our samples. \n",
        "*   On the `y` axis we see the distances of our metric ('Euclidean'). \n",
        "\n",
        "\n",
        "\n"
      ]
    },
    {
      "metadata": {
        "id": "g5xM3EWJJBsH",
        "colab_type": "code",
        "outputId": "2006ee9b-4637-4cb3-c936-2c2e05196ab9",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 640
        }
      },
      "cell_type": "code",
      "source": [
        "plt.figure(figsize=(25, 10))\n",
        "plt.title(\"Hierarchical Clustering Dendrogram\")\n",
        "plt.xlabel(\"Samples indexes\")\n",
        "plt.ylabel(\"distance\")\n",
        "dendrogram(Z, leaf_rotation=90., leaf_font_size=8. ) \n",
        "plt.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAABaEAAAJbCAYAAAD9kFiiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XmQ1/Vh//HXsisxcijQVUs0eCUe\nNRRj2gQR8QB3QWhQqyEU49G08ZbRn+IRIxFjijFKJGrVycS70SpemQje8SYRUm2MVqNVQTw2ulwu\nyLH7+4NxK3Kt6PuLC4/HTAfZ/X6+r/euDus8/fSTqpaWlpYAAAAAAEABHdb1AQAAAAAAWH+J0AAA\nAAAAFCNCAwAAAABQjAgNAAAAAEAxIjQAAAAAAMWI0AAAAAAAFCNCAwBsoHbccce8+eaby31s0qRJ\nOeKII5Ik119/fSZMmFDxc82cOTO77LLLSj/3Sc60uvdNkttvvz3Dhw9PfX199ttvv5xyyil56623\nkiQTJ07MWWedtVa7SXLzzTd/7GveeuutDB06dK03P2rixIn52te+lvr6+uy7776pr6/PxIkTs2jR\nok9tI0mOOOKITJo06VN9TwAA2readX0AAAA+m0aNGrWuj7CCUme68cYbc/XVV+fyyy/P9ttvn8WL\nF+fyyy/PqFGj8utf//oTvffSpUtzwQUX5NBDD/1Y122xxRafePuj6urq8qMf/ShJ0tDQkHPPPTfH\nHHNMfvGLX3yqOwAA8GHuhAYAYKU+fPfvm2++maOPPjp1dXWpq6vLb3/72yTL7i7ec889c/7557cG\n4vvvvz/Dhg1LXV1dDjrooDz33HNJkqlTp2bEiBE56aSTcsoppyRZdvfxB+956qmnLndX7i233JJh\nw4ZlwIABrTH2w2eaMWNG/umf/imDBg3KwQcfnGeffTZJ8vLLL+fb3/52Bg8enEGDBq0x5DY3N+fS\nSy/ND37wg2y//fZJko022ignnnhixowZk6qqquVev+++++app55a4fdLlizJWWedlbq6ugwaNCjH\nH3985s+fnyOPPDLz5s1LfX19ZsyY0ebv5Yfv3J40aVJOPPHEnHnmmamrq8uQIUPy4osvtl43fPjw\n7LvvvvnBD36Q733ve226E7m2tjYXX3xx/vd//zePPvpokmTatGk5+OCDM2jQoBx66KGZMWPGGvdn\nzJiRQw45JAMHDswpp5ySpUuXtm7suOOOueKKK1JXV5elS5fm+eefz4gRI1JfX59vfvObeeSRR1r/\nHowbNy79+vXLt7/97Vx55ZU57LDDkiSnn356fvzjH2fYsGG5++67s2DBgowePTp1dXXZd999M378\n+Na9ww47LFdeeWW+9a1v5Rvf+EZuuOGGXHbZZamvr8+QIUNavx4AACpLhAYAYI3GjBmTnXbaKVOm\nTMmVV16Z0047LY2NjUmS2bNnZ+edd87111+fJUuW5PTTT8+4ceMyZcqUFSLhn/70p4wYMSI//elP\nM3PmzIwfPz7XXnttJk+enAULFuTaa69NsixKLl68OHfddVfOOOOMlT6C4+yzz84BBxyQe++9N8cc\nc0xOO+20JMkFF1yQffbZJ3fffXfOP//8nHXWWVm8ePEqv7aXX345c+bMSb9+/Vb43MCBA9OxY8c2\nfY8effTRzJw5M5MnT84999yTHXbYIX/4wx9y/vnnp7q6OpMnT87WW2/d5u/lRz388MMZOXJkpkyZ\nkq9//eu55pprWr/efv365YEHHshee+2Vxx9/vE3nTZKamprstddemTp1aubPn59jjjkmJ598cu69\n99585zvfyUknnbTG/QsvvDB9+/bNfffdl8MPPzzTp09fbqOlpSVTpkxJVVVVTj755IwaNSqTJ0/O\neeedl1NOOSXz58/Pb3/72zz88MO55557cvnll+e2225b7j2eeOKJ3HLLLRk8eHD+4z/+I++9914m\nT56c2267LZMmTVruPwr8/ve/zw033JAf//jH+clPfpItt9wykydPzg477JBbb721zd8bAAA+PSI0\nAMAG7LDDDkt9fX3r/1100UUrvKapqSlTp05tfVZ0r169svvuu7fewbt48eIMGjQoybKo+fjjj6dP\nnz5Jkq997WvL3X268cYbp2/fvkmSxx57LLvttlu22GKLVFVV5ac//WnrRktLS4YPH54k2WWXXVZ4\ndvX777+fqVOntj4zeb/99mt97vJll12Wf/7nf06S7L777nn//ffT0NCwyu/B7Nmz07179xXueP64\nunfvnpdeein33ntv6926/fv3X+41H+d7+VHbb799dt111yTLvidvvPFGkuSpp55q/T4MHDgwm2++\n+cc6d+fOnTNv3rxMmzYtW2yxRWuMHzp0aF577bXMmjVrjftDhgxJkvTu3Tvbbbfdcu+/9957J1l2\nx/Zf/vKXHHDAAUmSr3zlK+nZs2f++7//O0899VT23nvvdOrUKZtttlnraz7Qt2/ffO5zn0uSHHXU\nUbnssstSVVWVTTfdNF/60pcyc+bM1tfus88+qampyZe//OUsWLAgdXV1SZIvf/nLefvttz/W9wYA\ngE+HZ0IDAGzArrvuumy55Zatv580aVLuvPPO5V4zb968tLS0ZMSIEa0fa2pqyje+8Y0kSXV1dTp3\n7rzce952221ZtGhRFi1atFzc3XTTTVv/urGxMV27dm39/QeR8YP3/PznP58k6dChQ5qbm5c70+zZ\ns9Pc3JwuXbokSaqqqtKpU6ckySOPPJLLL788jY2NqaqqSktLywrXf1i3bt3yzjvvZMmSJampWft/\nPe7du3e+//3v57rrrsuYMWOy77775pxzzlnuNR/3e/lhH3ytH7zug8dezJ07d7nv6xZbbPGxzv36\n669nu+22y9y5czNjxozU19e3fq5jx4559913V7s/Z86c5c784b+nSbLZZpslSd5999106dJluX8e\nunbtmnfffTdz585d7twf/Ro+/PW98sor+bd/+7e8/PLL6dChQ958880cdNBBrZ//4J+D6urq5X6/\nsn+OAACoDBEaAIDV6tGjR6qrq3Prrbe2Br0PfPgO1CSZPn16rrrqqvznf/5nttpqqzz22GM5++yz\nV/q+3bp1yx/+8IfW38+fPz8LFy5s05m6deuWqqqqNDY2pnv37mlpaclrr72Wnj17ZvTo0ZkwYUIG\nDBiQRYsWpXfv3qt9r2233Tbdu3fPAw88kP3333+5z/385z/PyJEjl/vYR2PmnDlzWv/6gzvKZ8+e\nnTPPPDO/+MUvcsghh7R+/uN8L9uqU6dOaWpqav396u76/qh58+bl8ccfz2GHHZbFixdnu+22W+nz\npF944YVVvkfXrl0zf/781t9/EK0/qkePHpkzZ05aWlpaQ/Ts2bPTo0ePdO7cuc1fw7nnnpu/+Zu/\nyaWXXprq6urlgj4AAJ9NHscBAMBq1dTUZMCAAfnVr36VJFmwYEHOOOOM1scxfNi7776bHj16pGfP\nnlmwYEFuu+22NDU1paWlZYXXDhgwINOnT8/MmTPT0tKSc845J7fcckubztSxY8f069ev9dnBjzzy\nSP71X/81CxYsSFNTU+tjI6655ppstNFGywXOj+rQoUNGjx6d8847L88880ySZY/FuPjii3Pfffet\ncGdybW1tnn/++STJb37zm7z//vtJkltvvTWXXnppkmV3/37wWIqNNtoozc3NmT9//sf6XrZV7969\nc/fddydJHnzwwTY/cuLdd9/N//t//y9f//rX89WvfjV/+7d/m4aGhjz99NNJlv0PDp566qkr/Xv3\nYX369Mm9996bZNl/hHjttddW+rqtttoqW265ZX7zm9+0vvYvf/lLevfuna985St56KGHsnDhwsyd\nO7f161mZd955JzvvvHOqq6vz2GOP5dVXX13t318AANY9ERoAgDUaO3Zsfv/736e+vj4HHnhgtt56\n6/z1X//1Cq/r379/Nt988wwcODBHHXVUDj/88HTp0iUnnnjiCq/dcsstc+655+bwww9vfW7vkUce\n2eYz/ehHP8qDDz6Y/fbbLxMmTMiFF16Yrl275rvf/W6GDx+e4cOH54tf/GIGDhyYo48+OgsWLFjl\nex188ME57bTTcvbZZ6euri7Dhg1LY2NjrrnmmhX+hwmPPfbYXH311Rk6dGheeuml7LDDDkmWPZf6\n2Wefzf7775/Bgwfnz3/+c4488sjU1tZm9913zz777JPp06e3+XvZVqeeemruueee1NfX54knnkif\nPn1W+XzrKVOmpL6+PgMHDsw//uM/ZqeddsqFF16YZNnzui+55JKMGzcugwcPznHHHZf6+vo1Piv7\n1FNPzYMPPpiBAwfmhhtuyB577LHS11VVVeWiiy7K9ddfn8GDB+e8887Lz372s2yyySYZNGhQdt11\n19TX1+eEE07I4MGDV7l3zDHHZPz48Rk6dGh+97vf5fjjj8/EiRMzbdq0Nn7HAACotKqWNd3aAAAA\nfKZ9+BEXBx98cI455pgMHDhwHZ/q4/nw13DDDTfk8ccfb72zHACA9s2d0AAA0I6NHz8+P/zhD5Mk\nL730Ul5++eXWx5G0F88991z222+/zJkzJ0uWLMk999yTPn36rOtjAQDwKXEnNAAAtGNvv/12Tjvt\ntLz++uvp0KFDjj766Bx44IHr+lgf2yWXXJI77rgj1dXV6dOnT374wx/m85///Lo+FgAAnwIRGgAA\nAACAYjyOAwAAAACAYkRoAAAAAACKqVnXB1idhoZ5q/18t26bpLGxaa3f/5Ncb9u2bdu2bdu2bdu2\nbdu2bdu2bdu2bdu2l6mt7bLK69r1ndA1NdXr7Hrbtm3btm3btm3btm3btm3btm3btm3btr1m7TpC\nAwAAAADw2SZCAwAAAABQjAgNAAAAAEAxIjQAAAAAAMWI0AAAAAAAFCNCAwAAAABQjAgNAAAAAEAx\nIjQAAAAAAMWI0AAAAAAAFCNCAwAAAABQjAgNAAAAAEAxIjQAAAAAAMWI0AAAAAAAFCNCAwAAAABQ\njAgNAAAAAEAxIjQAAAAAAMWI0AAAAAAAFCNCAwAAAABQjAgNAAAAAEAxIjQAAAAAAMWI0AAAAAAA\nFCNCAwAAAABQjAgNAAAAAEAxNev6AJ9lY8d+LnfdtfJvUYcOSXNzp7V+709yvW3btm3btm3btu3/\nM2zYkowd+/5abwAAAGW5E3o17rqrJrNmVa3rYwAAsAqzZlWt8qYBAADgs8G/sa9Bz54tmTbtvRU+\nXlvbJQ0NK368rT7J9bZt27Zt27Zt27aX2X33tb/LGgAAqAx3QgMAAAAAUIwIDQAAAABAMSI0AAAA\nAADFiNAAAAAAABQjQgMAAAAAUIwIDQAAAABAMSI0AAAAAADFiNAAAAAAABQjQgMAAAAAUIwIDQAA\nAABAMSI0AAAAAADFiNAAAAAAABQjQgMAAAAAUIwIDQAAAABAMSI0AAAAAADFiNAAAAAAABQjQgMA\nAAAAUIwIDQAAAABAMSI0AAAAAADFiNAAAAAAABQjQgMAAAAAUIwIDQAAAABAMSI0AAAAAADFiNAA\nAAAAABQjQgMAAAAAUIwIDQAAAABAMSI0AAAAAADFiNAAAAAAABQjQgMAAAAAUIwIDQAAAABAMSI0\nAAAAAADFiNAAAAAAABQjQgMAAAAAUIwIDQAAAABAMSI0AAAAAADFiNAAAAAAABQjQgMAAAAAUIwI\nDQAAAABAMSI0AAAAAADFiNAAAAAAABRTNEK/8MILGThwYK6//vokyRtvvJEjjjgio0aNyhFHHJGG\nhoaS8wAAAAAArGPFInRTU1PGjRuXvn37tn5swoQJOfTQQ3P99ddn0KBB+eUvf1lqHgAAAACAz4Bi\nEbpjx4656qqrsvnmm7d+7JxzzkldXV2SpFu3bpk9e3apeQAAAAAAPgOKReiamppsvPHGy31sk002\nSXV1dZYuXZobb7wxw4YNKzUPAAAAAMBnQFVLS0tLyYGJEyemW7duGTVqVJJk6dKlOe2007Ltttvm\n+OOPX+21S5YsTU1NdcnjrdY22yz79ZVX1tkRAABYDf++BgAAn301lR4844wz0qtXrzUG6CRpbGxa\n7edra7ukoWHeWp9lTdc3N3dKkjQ0vFfx7VLX2rZt27Zt27Ztr0/b/n3Ntm3btm3btm3btu3PxnZt\nbZdVXlfscRwrc+edd2ajjTbKiSeeWMlZAAAAAADWkWJ3Qv/xj3/M+PHj8/rrr6empiZTpkzJO++8\nk8997nM57LDDkiTbb799xo4dW+oIAAAAAACsY8Ui9K677prrrruu1NsDAAAAANAOVPRxHAAAAAAA\nbFhEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAA\nAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAA\nAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAA\nAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoA\nAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQG\nAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGh\nAQAAAAAopmZdHwAAShk79nO5667V/6jr0CFpbu601huf5Hrbtm1/8utnzapKkuy++4qvWZ+/btu2\nN7TtYcOWZOzY99d6CwBYt9wJDcB66667aloDFbB+6tmzJT17tqzrYwAFzZpVtcb/qAwAfLb5SQ7A\neq1nz5ZMm/beKj9fW9slDQ2r/vyafJLrbdu2bdu2bdtrvn5l/58OAED74k5oAAAAAACKEaEBAAAA\nAChGhAYAAAAAoBgRGgAAAACAYkRoAAAAAACKEaEBAAAAAChGhAYAAAAAoBgRGgAAAACAYkRoAAAA\nAACKEaEBAAAAAChGhAYAAAAAoBgRGgAAAACAYkRoAAAAAACKEaEBAAAAAChGhAYAAAAAoBgRGgAA\nAACAYkRoAAAAAACKEaEBAAAAAChGhAYAAAAAoBgRGgAAAACAYkRoAAAAAACKEaEBAAAAAChGhAYA\nAAAAoBgRGgAAAACAYopG6BdeeCEDBw7M9ddfnyR54403cthhh2XkyJE56aSTsmjRopLzAAAAAACs\nY8UidFNTU8aNG5e+ffu2fuySSy7JyJEjc+ONN6ZXr1655ZZbSs0DAAAAAPAZUCxCd+zYMVdddVU2\n33zz1o9NnTo1++23X5Jkn332yRNPPFFqHgAAAACAz4CaYm9cU5OamuXffsGCBenYsWOSpEePHmlo\naCg1DwAAAADAZ0BVS0tLS8mBiRMnplu3bhk1alT69u3bevfzq6++mjFjxuRXv/rVKq9dsmRpamqq\nSx5vtbbZZtmvr7yyzo4AwCfgz3EAaP/8PAeA9q/YndArs8kmm2ThwoXZeOON89Zbby33qI6VaWxs\nWu3na2u7pKFh3lqfZ03XNzd3SpI0NLxX8e1S19q2bdv2hrS9uj/HS2+Xvta2bdu2bdveULZX9vN8\nQ/i6bdu2bdu27fa2XVvbZZXXFXsm9MrssccemTJlSpLknnvuSf/+/Ss5DwAAAABAhRW7E/qPf/xj\nxo8fn9dffz01NTWZMmVKLrzwwpx++um56aab0rNnzwwfPrzUPAAAAAAAnwHFIvSuu+6a6667boWP\n//KXvyw1CQAAAADAZ0xFH8cBAAAAAMCGRYQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAo\nRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAA\nihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAA\ngGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAA\nAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAA\nAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAA\nAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoA\nAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQG\nAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGh\nAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJE\naAAAAAAAihGhAQAAAAAopqaSY++9917GjBmTOXPmZPHixTnuuOPSv3//Sh4BAAAAAIAKqmiEvu22\n27LtttvmlFNOyVtvvZXDDz88kydPruQRAAAAAACooIo+jqNbt26ZPXt2kmTu3Lnp1q1bJecBAAAA\nAKiwit4JfcABB2TSpEkZNGhQ5s6dmyuuuKKS8wAAAAAAVFhVS0tLS6XG7rjjjjz11FMZN25cnn/+\n+Zx55pmZNGnSKl+/ZMnS1NRUV+p4K9hmm2W/vvLKOjsCAJ+AP8cBoP3z8xwA2r+K3gk9ffr07Lnn\nnkmSnXbaKW+//XaWLl2a6uqVh+bGxqbVvl9tbZc0NMxb6/Os6frm5k5JkoaG9yq+Xepa27Zt296Q\ntlf353jp7dLX2rZt27Zt2xvK9sp+nm8IX7dt27Zt27bd3rZra7us8rqKPhO6V69eefrpp5Mkr7/+\nejp16rTKAA0AAAAAQPtX0Tuhv/Wtb+XMM8/MqFGjsmTJkowdO7aS8wAAAAAAVFhFI3SnTp3ys5/9\nrJKTAAAAAACsQxV9HAcAAAAAABsWERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoA\nAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQG\nAAAAAKAYERoAAAAAgGJEaAAAAAAAihGhAQAAAAAoRoQGAAAAAKAYERoAAAAAgGJEaAAAAAAAihGh\nAQAAAAAopk0RetGiRbnhhhty4YUXJkmefvrpvP/++0UPBgAAAABA+9emCD127Ni89tprmTp1apLk\n2Wefzemnn170YAAAAAAAtH9titAvv/xyzjjjjGy88cZJkpEjR+btt98uejAAAAAAANq/NkXompqa\nJElVVVWSpKmpKQsXLix3KgAAAAAA1gs1bXlRfX19Dj/88MycOTPnnXdeHn744YwcObL02QAAAAAA\naOfaFKFHjRqV3r1753e/+106duyYiy66KLvuumvpswEAAAAA0M61KUK//fbb+a//+q9897vfTZJc\nfPHFqa2tzRZbbFH0cAAAAAAAtG9teib0GWeckb/6q79q/f2OO+6YM888s9ihAAAAAABYP7QpQi9a\ntChDhgxp/f2QIUOyePHiYocCAAAAAGD90KYInSQPP/xwFi5cmKampkyZMqXkmQAAAAAAWE+06ZnQ\n5513Xs4555ycdNJJqaqqyle/+tWMGzeu9NkAAAAAAGjn2hShe/XqlauvvrrwUQAAAAAAWN+0KUI/\n+eSTue666zJnzpy0tLS0fvyGG24odjAAAAAAANq/NkXoc845J8ccc0x69uxZ+jwAAAAAAKxH2hSh\nt9pqqwwfPrz0WQAAAAAAWM+0KUL3798/N910U/7+7/8+NTX/d8nWW29d7GAAAAAAALR/bYrQ1157\nbZLkiiuuaP1YVVVV7r///jKnAgAAAABgvdCmCP3AAw+s8LFp06Z96ocBAAAAAGD90qYIPX/+/Nxx\nxx1pbGxMkixevDi33nprHn300aKHAwAAAACgfevQlheNHj06//M//5NJkyblvffey4MPPpixY8cW\nPhoAAAAAAO1dmyL0+++/n3PPPTdf+MIXMmbMmFx77bW5++67S58NAAAAAIB2rk0RevHixWlqakpz\nc3MaGxuz2WabZcaMGaXPBgAAAABAO9emZ0J/85vfzM0335xDDjkkQ4YMSffu3dOrV6/SZwMAAAAA\noJ1rU4Q+4IAD0rVr1yRJ3759884776RLly5FDwYAAAAAQPu3xsdxNDc357jjjktLS0uam5tTW1ub\nHXbYIccee2wlzgcAAAAAQDu22juhf/3rX2fixIl59dVXs/POO6eqqiotLS2pqqpK//79K3VGAAAA\nAADaqdVG6KFDh2bo0KGZOHFiTjjhhEqdCQAAAACA9cQaH8eRJAceeGCmTZuWJLn55ptz5pln5qWX\nXip6MAAAAAAA2r82RegzzjgjG220Uf70pz/l5ptvTl1dXc4777zSZwMAAAAAoJ1rU4SuqqpK7969\nc++992bUqFEZMGBAWlpaSp8NAAAAAIB2rk0RuqmpKc8880ymTJmSvfbaK4sWLcrcuXNLnw0AAAAA\ngHauTRH6qKOOytlnn51DDz003bt3z8SJEzN06NDSZwMAAAAAoJ2racuLhgwZkiFDhrT+/uSTT05V\nVVWxQwEAAAAAsH5YbYQePXp0JkyYkAEDBqw0Oj/00EOlzgUAAAAAwHpgtRF6l112ye23357Ro0dX\n6jwAAAAAAKxHVhuhX3zxxbz44ouZPXt2nnvuufTp0ydLlizJM888k9122y0HHnhgpc4JAAAAAEA7\n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\nAMCPQv1ZWa9evdStWzfdfffdCgoK0gsvvODP6gEAAAAAAAAAfubXnNAAAAAAAAAAgMbFr+k4AAAA\nAAAAAACNC0FoAAAAAAAAAIDPEIQGAAAA6oiSkpJANwEBUFhY6KhcRkZGLbcEaFhycnJ0+PDhQDfD\nkYqKCr/XWVZWptzcXL/X6+n48eMBrb+4uDig9QO+duLEiYDV7deFCQEAAAD8q8WLF+vzzz9XXl6e\nmjRpot/+9re68cYbA90s+Mi0adO0e/duDR48WIMHD9acOXM0fvx4r8rOnTtXklRZWanU1FRdddVV\n+sMf/uDL5tYJt956qx577DH1798/0E1BPfDmm2+qXbt2+uabb9SsWTPFxMRo7NixgW5Wjd577z3F\nxcXp448/VpMmTXTJJZfo/vvv90vdH3zwgb788ktFRUUpPz9ft9xyi+68806/1P3aa69p8+bNuvTS\nS7V3716dc845euGFF/xS96lmzZrl9XgM1BczZ87U1q1bde2112r9+vVq06aNJk2a5Pd2hCQmJib6\nvVaH3n//fXXr1k3Bwc4mcB87dkwfffSRvvzyS2VlZalLly4KCQkx/juffPKJLrroIqMyW7duVWho\nqGbOnKnPP/9c8fHxatWqlXHdkvTFF1+oU6dOXv/+3r17tXLlSsXExCgpKUlNmjRRbGysV2V//vln\nhYSE6P3339fatWvVsWNHNW/e3Ou6d+/erb///e/q1KmTwsPDtXLlSnXu3Nnr8p7Wr1/vdbsl6auv\nvlJ8fLyjumz7iu12c3HS18rKyvTll19q/fr1On78uOLi4rwua9tum75WUFCgsLAwffHFF9q+fbs6\nduyosLAwr+u22WdHjhxRamqqOnbsqODgYKWlpal9+/Zela3NPv75558bHduSlJubq4ULF+qzzz5T\nenq6OnXqpCZNmnhVNicnRxs3blSbNm3017/+VZGRkWrZsqXXddtsc5vx3PZccCqTMXXv3r369NNP\n1aZNGyUlJSkiIsLrviLZ9xebc4nN8SnZbfcDBw4oPDxc77//vlJTU9WpUyc1bdrU+O9I5uOi7bgW\nqG1uu79sj2/bsSUtLU3R0dH661//qubNm6t169Ze121z/rYdH2rr/C2ZX68tW7ZMU6dO1dGjR/XS\nSy/pnXfe8ToIXZvtlszb7uLkusWmr9mUlezGZJvrLamqn0+fPl3ffvutKioqtG/fPl177bVelU1O\nTlZsbKx69uypjIwM3XjjjUbnIptzWWlpqT799FOtXr1ahw8fVnx8vNX52OT6/qefflLbtm01d+5c\nlZaWKiQkxGhssdnfNucx2/sK2zHVk+m1Zm3ubyfjgyfTcWnlypXKy8vTpEmT9O///u/66quvvD7G\nbO9LbPraP/7xD2VnZz8OXeIAABu9SURBVOvFF19Uv379tGLFCl133XVelbUdE1NSUvTqq6+qX79+\nGjx4sJYsWaI+ffp4Xd5mbFm3bp2mTJmiZcuWafr06dq6dauuvPJKr+v2ZNrXRo4cqaVLl2rp0qVa\nsmSJNmzYoN/97ndel7c5xgN5fW57X2PT32zrDmR8zSZ2YNNu28/85ZdfasaMGZo/f77eeustff31\n17rhhhu8Lm+7z1zqVTqOr7/+WhMmTNDatWsdlZ8xY4a6du0qSQoNDTV6sta7d2+NHDlSI0aM0Jtv\nvqmRI0ca1Z2SkqK33npLv/nNbzR27FjNnz/f67IbN250/7dhwwZ9+umnRnUnJSUpMjJSjz76qPr1\n66dFixZ5XXbu3LmaO3euLr74Yt1www167bXXjOp+88031aFDB7300ksqKSnRpk2bvC576NChk/5b\ntmyZUd1vv/22nnvuOf34449G5SS7viLZbTfbvvbyyy8rJydHO3fu1MaNG/Xiiy/6pd2SXV+bOXOm\nkpKSdPz4cTVr1kyTJ082qttmn7344ov6+eef9ec//1mS9M9//tPrsjZ9XJIGDhzo3t9Tp0413t/T\npk1Tr169dN999+nCCy/U1KlTvS47efJk7dy5U2PHjlXLli01Y8YMo7pttrnNeG57LrAZU//yl7+o\nbdu2euqppzRkyBClpKQY1W3bX2zOJTbHp2S33d977z298cYb6tSpky6//HJNnz7dqLzNuGg7rgVq\nm9vuL9vj22ZsmTZtmvbt26eHHnpIMTExeuedd4zqtjl/244PNv3F9notLy9P6enpys3NVU5OjtHr\n0Lb93Kbtttcttn3NaVnJbky2ud6SqgKLOTk5GjFihJYtW6Y9e/Z4XXb27NkKCQnR3r171b59e/Xu\n3duobptz2QsvvKDS0lJdcMEFys/Pl+l8Jpvr+6CgIA0YMEBTpkxRcHCwFi9ebFS3zf62OY/Z3lfY\njqk215q2+9tmfLAdU/fu3avMzEzl5+crJydHBw4c8Lqs7X2JTV8rKSlRaGiovvnmG33zzTc6ePCg\n12Vtx8Rjx47p0KFDkqqO1fz8fKPyNmOL62FLRkaGDhw4YJwSxKavde/eXW+88YbeffddLViwQP36\n9TOq2+YYD+T1ue19jU1/s607kPE1m9iBTbttykpSdna28vLy9Mgjj+iXX34xTgNmu89c6lU6jnPP\nPVfjx4/Xf//3f2vhwoVq2rSp0UX2WWedpWuuuUbr1q3TkCFDtGXLFq/Lzps3T8uWLdPjjz+u5ORk\nPfzww8btb9mypfsJqMnslKlTp570BDIrK8u43ltvvVX79u1Tjx49jJ6sNW/eXC1atNAVV1whSUZP\nUiXp7LPPVt++fdWpUyfNnDnT6AndyJEj1aNHD/f327ZtM6q7W7duevjhhzVv3jxlZGSoQ4cO+uMf\n/+hVWZu+ItltN9u+FhkZqTvvvFOzZ8/WQw89pJdeeskv7Zbs+1pYWJj+4z/+Q5KUlpZmVLfNPouJ\nidHw4cO1Y8cOvfXWW0b12vRxSRo7dqx++OEHPfzww5o7d67x/m7durV7lkB8fLxWrVpl1PbRo0fr\n4MGDGjBggLZu3WpUt802txnPbc8FNmNq+/btddNNN+nrr7/WhRdeqDZt2nhdVrLvL5Lzc0mrVq0c\nH5+S/XZv1qyZe7t/8cUXRnXbjIu245rkfJvbjIk2ZSXpnHPOsTq+bcaWc889V/fff78OHDigm266\nSd9//71R3Z7n7wMHDqhjx45en79t+6lNf7G9Xrv99tv14Ycf6ne/+50KCgr05JNPel3Wtp/btN32\nusWmr9mUlezGZNf11pw5c4yvt6Sq839eXp5at26tCRMmKDk52aj8iBEjlJqaqvT0dKNykhQXF+f4\nXNa6dWv953/+p/t704dFNtf33bp1kySFh4drwIABGjBggFHdtudgz/PY559/7nU52/uK+Ph4qzHV\n5lrTdn/bjA+2Y+ptt93m/jojI0MPPvig12Vt70ts+tojjzyixYsXa+XKlYqOjtazzz7rdVnbMXH0\n6NGaOXOmjh49qnbt2umBBx4wKm9znXzvvfdq9erVmjp1qpKTk3Xrrbca1W3T1x544AGVlZW5vzdN\n+WNzjNte79lc99je19j0N9u6pcDF12xiB5LzdtuWffDBB3X06FFddNFF2rJli26//Xaj8rWxz6R6\nFoQOCgpSaGio7r33Xg0dOtS4/PHjx/X444+ra9eu2rRpkyIiIrwu26tXL8XHx2v69OmqrKxUYWGh\nmjVr5nX5tLQ0hYaGqm/fvkpPTzdaZGDMmDHq2rWr4uLijJ9GSlJERIQ2btyohx56SJs3bzZK9H/R\nRRdp+fLluvvuu1VSUqIhQ4YY1R0ZGam0tDRdccUV6tu3r5577jmv8yuNHj1al19+uTp06CCp6kmb\niaCgIEVFRempp55SSUmJ9u7d63VZV1/p1auXNm7cqPDwcKO6PbdbUVGR+wLGG66+NnXqVEfpYg4d\nOqTp06eradOm2rZtmwoKCozavWzZMt18880KDg7W8OHDjeo+ta+ZPF2Ljo7W2rVr3Tfdpidg1z5L\nSEjQpk2bjPZZSUmJtmzZoh49emjPnj1KSkryup969vEuXbpo7ty5RjnEbr31Vl100UWaNGmScT+T\nqp62P/fccwoNDVVxcbFiYmK8LltUVKQdO3Zo4sSJ2rVrl44ePWpUt+c2X79+vdGY6jmeDx482PhG\n0FW2b9++xq9eeY6ppiorKzV27Fh16dJFzzzzjFq0aGFU3tVfunTpom7duhnnnHOdS4YMGaIff/zR\n6PgODw/Xhg0b3Men6YIUrn02YMAA3XzzzUYXPitXrlRYWJiGDh2q7OxsZWdnG9XtGhdnzJhhvEiP\na1y7++67FRYW5vUrrS6e23z37t1G9XuOievXrzcaEyMiItz7a9OmTcazFQoLC93H9+7du5WTk2NU\n3jW2tG3bVj///LPatm3rddnc3FxNmDBBlZWVmjVrlvHYIsnx+dtzbLn33nuNjhHp5PN3WFiYrrnm\nGq/Leo4tBw4cUFBQkFHdl19+uS6//HKjMi6e/fzQoUPG+UPHjBmjLl26uK+5TNrueY3sZJE8z752\n8OBBo5uaU8ueddZZRnVHRkZq3bp16t27t3r37q0pU6Z4PSZ7Xm9t3brVeCEtz1d/w8LCNHr0aKPy\nknTllVc6el29oqLCfS57+umnjc7f+fn5euuttxQTE6ODBw8aj02e1/fl5eVGM4oHDx5sVNepbO5L\nPM9jhw4dMhrXTr1GNdneUtUMUZsx1fNa0/TewnN///zzz8b7+9R76OLiYq8/v2tMbdasmUpLS43H\nVM/7L88HH95w3Zc88cQTKi8vV8eOHY3Ke44tvXr10iuvvOJ1X4uKitKoUaOM6nPxHBPXr1+vXr16\nGZXv2rWr8T23J9d1ctu2bTVq1Cidd955Xpft0qWLunTpIkl65plnjOv27GulpaVGZU+9nr/00kuN\nynse46axA9f13t133+3oek+S4+sez/uaMWPGGKdWOPUcbHJf5Fn3o48+ahzQ9Lw+37Ztm+P4WkFB\ngfHYUlxc7I4d7Nq1S0uWLPH6+E5NTVVYWJj7Xq6oqMjrej0/85o1a4zviS688EL316ZjonTyPnv6\n6acdxaqkehaELi4u1ogRIxwn0j7nnHN07rnnatu2bfr555+NgjWuxUMGDhyoTp06GS0eIkk333yz\n2rVrp4ULFyo8PNwo+PHdd98pOTn5pCT9JiorKzVnzhwNHTpUt9xyi9HgsHv3bhUWFuq6667Thg0b\njGdbFBUVad68eTp48KAGDx5stMDOvHnz1LRpU/cNkbezoFySk5PVs2dP9e/fX+Hh4ScddDVJTEzU\nsWPH3DczJrMdJGnPnj0qLCzUeeedp4KCAu3fv9/rsq5FNIqKipSdna2kpCSjRTQuvvhiHT9+XNu3\nb9f333+vhIQEr8v+9NNPuvnmm5WSkqKOHTsa37yHhYVp1qxZuuyyy4z76gcffKAxY8bovPPOU+vW\nrY0DhFFRUdq3b5+ys7P17rvvGtW9Zs0aXXbZZerRo4cGDx5sdEMXHh7ufpUnNTXV6IGD9OsiOxMm\nTNC3335rVFaqunC59NJLlZKSotjYWKOTQVpamhISEnTxxRcrOjraeGGCqKgo7d27V0VFRZo/f77R\nxUNJSYnuv/9+R4uPtGrVyr0o09q1a40XZEpLS9P777+vIUOGaNCgQUYXe6GhoerevbukqqfmV199\ntddlXeUzMzP10UcfqVmzZsb95eqrr9auXbu0adMmDRgwQKtXr/a6rOc564ILLjB+eh4VFaW//e1v\n+uabb9S8eXO1bdvW67EpIiJC48aNU4cOHXTWWWdpypQpRnW7Fqvp0aOHNm/erD//+c9e95dBgwbp\ntttuU05OjqKiovT6668b1d2nTx9t2bJFK1as0Lp164yCsaGhoXr99dfVp08frVq1Sueee67XZSMj\nI5Wamqp169Zp7dq17hmu3jr//PN18OBBJSUlqbCw0LivSlUz3mJiYpSZmWk0tqxatUrjxo1T//79\n9cMPPxh9bqlqluaXX3550qJM3p7DT5w4odGjR7sXe3vzzTeNrtd27NihkpISDR8+XP379zfqLz/8\n8IN++OEHSb+OTf6SmZmpSy65RCEhIVq7dq1++eUXo/L/9m//dtL3Jg+pXONxmzZttH//fs2dO9do\nTA4KCtKPP/7onmFpknf1iSee0IEDB3T06FHFxMQYv8ZcXl6upKQkXXfddVq/fr3Rcfbdd9/pzjvv\n1KhRo1RaWmr82nsgPfLII+6vXUFGb3Xp0kVxcXF69NFH1bt3b/Xt29eo7oKCAu3Zs0dTp05VkyZN\ndPHFFxuVt/HYY4+5v7766quN7ktGjBihuLg4TZ06VUVFRUZjaps2bRQdHa3jx49r1qxZxmNDhw4d\nFBUVpZUrV6qgoECXXHKJUXnXQneZmZnatm2b+20Vb6SlpWncuHEqLy/XVVddZRzUlKpmSyYmJmrr\n1q1GD9937typvLy8k647/OmWW27RsmXLFBkZqbPPPtuobEVFhebMmeO+J7r++ut91MqTNW3aVOHh\n4QoKClJFRYWjCS42goODdeONN2r16tWKjY11nKPXCc9F19LS0vT888/7bdG1pk2b6qefflJUVJR6\n9eqllStXel22efPm2r9/vz744AP3ApomHnrooZO+N7nuKSsrc9/vnzhxQuXl5UZ1l5aWKjMzUzEx\nMXr44YeNzsGlpaU6ceKEIiMjVVxcrJKSEqO6+/btq++++04ff/yx0tPTFR0d7XXZTZs2adGiRSfF\nFU106tRJR48e1dixYxUREWE0UXPp0qXur9u1a2d0/+9KE7Ns2TKtXbvW0bW9jcLCQhUVFalz584a\nNWqUo1ngUj3LCR0eHq4FCxZo48aNmjt3rqMnudnZ2ZoxY4ZefPFFo8BDWVmZ5s+fr9zcXOMna1JV\nfqU9e/ZoxowZmjJlilHdISEhWrhwoY4cOaLZs2cbL0RRVlamd999V0ePHtX27duNZhwWFRVp0aJF\n2rFjhxYsWGC8zcvKyvTOO+/o6NGj2rBhg1H5Pn36qKKiQk8++aSWLVtmFMiVpN/+9rcnlTcJoI8a\nNUqPP/64O6/UZ599ZlR3SEiIFi1apODgYON9lpeXp927d2vGjBlatGiR8dPQQ4cOqbS0VG+++aZm\nz57tzuvljWPHjmnv3r1KTk42Pkakqs+dnJzsqK/26dNHYWFhSk5O1nfffWf8wCM0NNS6bldfMQm+\n79ixQ6GhoUpISFC7du2MA0XXX3+9Kioq9Kc//UmFhYXGn9tzn5mOLX379lV4eLiefPJJrV69WpmZ\nmUZ1u8YHJ2Nyq1atHI9rrm3eq1cvtWvXzuhBi/TreH7kyBFt2LDBqOyOHTsUFhamhIQEtW/f3njW\n4rFjx9zHt5NjzHNM3bx5s9GT+1GjRmnkyJEaOXKkxowZoxUrVjhu+6RJk4za7jmef/3118av87rO\ng0ePHlVycrJRfxk1apRGjx6t8ePH68EHHzQez4uKirRw4UJt3LhR8+bNM+rnnsdIcnKyUdkdO3Yo\nPDzc3c9Nc74eOnRIW7ZsUVJSkhYsWGCcW9HV9u3bt2vhwoWOz9+7d+82HlsOHTqkzZs3KykpSTNm\nzDA6jzVt2lTz5893X3eY8rxmMk1hsn37dquxycb27dvVpEkTJSQkKDY21rhu19jg5LrH9bl79+7t\nqG7XNVOHDh20aNEi4+P7hRde0KxZs/Tss89aHd9z5841SmPSp08ftWvXTk8++aRWrFjhKC1GoHie\nDx577DGj84FrbNm2bZsWLFhgdHxK0sGDB086vo8cOWLafMc8P/eIESOMAkWeY6rrPOytnTt3KiIi\nwn2taHqMHDp0SPv371dSUpJmz55tPJ67tvk777yj1NRUo33mGs//7//+T1lZWcb93LW9R40apdde\ne83oGPW8JzK97rDl2ubz58/Xa6+9ZtzPT70nMg1iO7Vjxw41adJEvXv3Vvv27f16HpJOjnk4uc61\nUVRU5I4Vvf32245naTrhee2wYcMGo+vzY8eOKT093fE2e+KJJxyfvz37qen5V/r1czdr1szRfaTT\n62vp5LbPmTPHqO2efcVJXNHzOnXmzJlGb0J5nod+//vfG+0vz/tQJ9dbtjzvQ3fv3m08g9ylXgWh\nbRNp2yxOYLN4SG3UbZOk36btttvcdrvZLD5is3hJt27drBYnsNlnNn1FslvMwrZu275qs78DVbft\n4kC2i+zY7jObum3GB5v9ZbvNA7kYVG0cY07bbjuuBbKv2fQX289t089tytr2NZtzgW3bJbv9bdN2\n2+uOQI4PNmzrtlmUqTbGZNvje8GCBbVyfJumKbLp54FkMy7aji225W0E6nMHejy3LW/Tz23GFtvr\nDhu22+zUcc00JZZTgTwPSYHdZ7bXLTZsrh1st5nNMVbf40xO225bt834YHMeCvTxbXuN7RKSaLrE\nbQDFx8eruLhY559/vnbu3Knzzz/fKG9NeXm54uPj1alTJ/3000/q3bu311Pvu3btqqKiIrVq1UrX\nXnutjhw5YvQ6kk3dcXFx2rhxox588EG99957uuWWW4w+t03bbbe5Td25ubm64IILFBISoq5duxrn\n8bQpf8kll6isrMw9IyYyMtLo1RibfWbTVyTpsssuc7+uf/z4cf3hD3/w+rV727ptPrft/g5k3T17\n9tSJEye0c+fOkxY58EfdNvvMtm6b8cF2XLPZ5rbjuU3dtseYTdttx7VA9jWb/mL7uW36ue051Kav\n2ZwLbNtuu79t2m57fAdyfLBlU7ftcWJTd309vm37eSDZbDfbscW2vI1Afu5Ajuc25W37uc02t71m\nsmG7zW2vc20E8jwUyH1me81lw+bawXab2Rxj9TnOZNN227ptxodAXm/Zsr1GdgmqrKys9EH7AAAA\nAAAAAACoX+k4AAAAAAAAAAD1C0FoAAAAAAAAAIDPEIQGAABAg/LVV1/pnnvu0X333ac77rhD48aN\nU35+vs/q++STT/THP/7R6m/s3LlTL774ote/X1ZWpgsuuMCqTgAAAMBfQgPdAAAAAKC2lJSUaPz4\n8UpJSXEv7vPqq6/q448/1siRIwPcujO76KKL9NxzzwW6GQAAAIBPEIQGAABAg1FcXKzCwkL98ssv\n7n976qmn3F+vXLlS8+fPV3h4uMrLy/XKK68oLi5O9913ny6//HJt2bJF+/fv14QJE7RkyRLt2rVL\nQ4cO1ZgxYzR79mwdOHBAubm5ys7O1lVXXaVnnnnmpPq///57TZs2TWVlZSotLdXzzz+viy++WMnJ\nyfrf//1fNW3aVE2aNNGrr76qVq1auculpqbq9ddf14cffqj77rtPV199tTZt2qT9+/frkUce0eDB\ng7V371499dRTatq0qa688kp32ZKSEk2aNEk//vijTpw4oYEDB2rkyJGaPHmyzj77bI0ZM0apqama\nMWOGPvzwQ+3evdtRGwEAAACnCEIDAACgwYiMjNQjjzyioUOH6tJLL9WVV16pfv36qVOnTpKk/Px8\nvfbaa4qNjdW8efP0/vvv6+mnn5YkVVZW6p133tHs2bM1ffp0LV26VIcPH3YHoSVp9+7dWrx4sSoq\nKnTbbbdp6NChJ9X/1FNPKSkpSR07dtT333+vCRMm6JNPPtEbb7yhFStW6JxzztGqVat0+PDhagO8\nhYWF+stf/qK0tDRNnjxZgwcPVlJSkm6//XYNHz5c//jHP9y/u2jRIrVp00aTJ09WeXm57rrrLl1z\nzTV68sknddddd+mWW27RlClTNHPmTIWEhNRaGwEAAABvEYQGAABAg/LAAw/ozjvv1OrVq5Wamqq7\n7rpLTzzxhIYPH65zzjlHTz/9tCorK5Wdna2ePXu6y/Xq1UuSFBMTo27duik8PFwxMTE6fvy4+3eu\nuuoqhYZWXUJ3795d6enp7p8dPXpU+/bt05/+9Cf3vxUUFKiiokJ33HGHRo8erX79+ql///4677zz\nqv0MV1xxhSQpNjZWx44dkyTt2rVLDzzwgLsdLqmpqTp48KDWrVsnqWpm9E8//aQLL7xQiYmJGj58\nuMaMGaNOnTrVahsBAAAAbxGEBgAAQIPyyy+/qFWrVho4cKAGDhyo/v37a+rUqbrzzjs1btw4/e1v\nf1N8fLz+67/+S9u2bXOXcwWXT/3aU0VFhfvryspKBQUFub8PDw9XWFiY3nvvvX8p9+yzzyozM1Nf\nffWVxo4dq6efflp9+/Y942fwrL+ystL9/+DgqnXFy8vLT6p37Nix6t+//7/8nSNHjigqKkpZWVm1\n3kYAAADAW8GBbgAAAABQW1atWqVhw4apoKDA/W8HDhzQueeeqxMnTig4OFjt27dXcXGxvvjiC5WU\nlBj9/XXr1qm8vFwlJSXaunWrLrjgAvfPIiMjFRcXp6+++kqStG/fPs2ZM0fHjh3T7Nmz1a5dOw0f\nPlz33HOPtm7davzZOnfurO+++06StGbNGve/JyQk6O9//7ukqiD5lClTlJeXp5ycHL3xxhv66KOP\ntHXrVqWlpfm8jQAAAMDpMBMaAAAADcb111+v/fv36/7771fTpk1VWVmps88+W88//7xatmypgQMH\n6o477lBsbKxGjRql8ePHuwO43ujQoYMee+wxZWRk6LbbblPnzp21efNm98+nTZumyZMn6+2331ZZ\nWZmeeeYZnXXWWTpx4oTuuOMORUVFKTQ0VC+99JLxZ3PNTv7ss8/Us2dP92zpe+65R7t379awYcNU\nXl6uG264QS1bttRjjz2m3//+92rdurUmTZqkhx9+WP/zP//j0zYCAAAApxNU6Xq/DwAAAMAZzZ49\nW2VlZXr88ccD3RQAAACgXiEdBwAAAAAAAADAZ5gJDQAAAAAAAADwGWZCAwAAAAAAAAB8hiA0AAAA\nAAAAAMBnCEIDAAAAAAAAAHyGIDQAAAAAAAAAwGcIQgMAAAAAAAAAfIYgNAAAAAAAAADAZ/4f0yJd\nmghlpQQAAAAASUVORK5CYII=\n",
            "text/plain": [
              "<Figure size 1800x720 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "kbERWste0pfM",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# Retrive the clusters\n",
        "`fcluster` is used to retrive clusters with some level of distance. \n",
        "\n",
        "The number two determines the distance in which we want to cut the dendrogram. The number of crossed line is equal to number of clusters. "
      ]
    },
    {
      "metadata": {
        "id": "vscUQI1hKYHc",
        "colab_type": "code",
        "outputId": "aeef37c7-347a-408a-8a70-0c3e23397308",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 102
        }
      },
      "cell_type": "code",
      "source": [
        "cluster = fcluster(Z, 2, criterion=\"distance\")\n",
        "cluster"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array([4, 4, 3, 4, 3, 4, 4, 3, 4, 3, 3, 3, 3, 2, 3, 4, 2, 4, 3, 1, 4, 2,\n",
              "       1, 1, 1, 2, 2, 2, 4, 4, 2, 4, 3, 2, 4, 2, 1, 1, 4, 2, 4, 2, 1, 2,\n",
              "       3, 4, 3, 2, 2, 3, 1, 3, 2, 4, 1, 1, 1, 2, 4, 1, 3, 3, 4, 2, 3, 3,\n",
              "       4, 2, 3, 1, 3, 1, 1, 1, 1, 2, 1, 1, 2, 3, 3, 1, 4, 1, 2, 4, 1, 2,\n",
              "       4, 1], dtype=int32)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 5
        }
      ]
    },
    {
      "metadata": {
        "id": "jXxmbM1i7cVT",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# Plotting Clusters\n",
        "Plotting the final result. Each color represents a different cluster (four clusters in total)."
      ]
    },
    {
      "metadata": {
        "id": "VMAFl7wiOOGt",
        "colab_type": "code",
        "outputId": "23188b59-f7a1-42bf-d30b-0a30aaf7d1c2",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 483
        }
      },
      "cell_type": "code",
      "source": [
        "plt.figure(figsize=(10, 8))\n",
        "plt.scatter(X[:, 0], X[:, 1], c=cluster, cmap=\"Accent\")\n",
        "plt.savefig(\"clusters.png\")\n",
        "plt.show()"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 720x576 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        }
      ]
    },
    {
      "metadata": {
        "id": "2GU4miqf-dLu",
        "colab_type": "text"
      },
      "cell_type": "markdown",
      "source": [
        "# Evaluting clusters: \n",
        "Finally we will use Normalized Mutual Information (NMI) score to evaluate our clusters. Mutual information is a symmetric measure for the degree of dependency between the clustering and the manual classification. When NMI value is close to one, it indicates high similarity between clusters and actual labels. But if it was close to zero, it indicates high dissimilarity between them. "
      ]
    },
    {
      "metadata": {
        "id": "BirJIkyZOpfZ",
        "colab_type": "code",
        "outputId": "2c8f934f-0b98-474a-f7c5-610378c9f79b",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 88
        }
      },
      "cell_type": "code",
      "source": [
        "normalized_mutual_info_score(y, cluster)"
      ],
      "execution_count": 0,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/sklearn/metrics/cluster/supervised.py:844: FutureWarning: The behavior of NMI will change in version 0.22. To match the behavior of 'v_measure_score', NMI will use average_method='arithmetic' by default.\n",
            "  FutureWarning)\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1.0"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 7
        }
      ]
    },
    {
      "metadata": {
        "id": "b_TD3pKJbBkl",
        "colab_type": "code",
        "colab": {}
      },
      "cell_type": "code",
      "source": [
        ""
      ],
      "execution_count": 0,
      "outputs": []
    }
  ]
}
